package com.peng.immodule.user;

import com.peng.immodule.entity.Contact;
import com.peng.immodule.util.IMCommonUtils;

/**
 * Created by Mr.Q on 2018/3/6.
 * 描述:
 *      1、IMUser类，用户昵称首字母、头像的 url 字符串
 */

public class IMUser extends Contact {

    /**
     * 昵称的首字母
     */
    protected String initialLetter;
    /**
     * 头像的 url 字符串
     */
    protected String avatar;

    public IMUser(String username) {
        this.username = username;
    }

    /**
     * 获取当前用户的的首字母，昵称有值则获取昵称的首字母，否则获取 userName 的首字母
     * 此处，用工具类将 汉字 -> 拼音 后获取第一个字母
     * 如果为数字，则首字母设置为 #
     *
     * @return
     */
    public String getInitialLetter() {
        if (initialLetter == null) {
            IMCommonUtils.setUserInitialLetter(this);
        }
        return initialLetter;
    }

    /**
     * 设置当前用户的首字母
     *
     * @param initialLetter
     */
    public void setInitialLetter(String initialLetter) {
        this.initialLetter = initialLetter;
    }

    /**
     * 获取用户头像对应的 url 字符串
     * @return
     */
    public String getAvatar() {
        return avatar;
    }

    /**
     * 设置用户头像 url 字符串
     * @param avatar
     */
    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    @Override
    public int hashCode() {
        return 17 * getUsername().hashCode();
    }

    /**
     * 对象具有相同的 UserName 则相等
     *
     * @param object
     * @return
     */
    @Override
    public boolean equals(Object object) {
        if (object == null || !(object instanceof IMUser)) {
            return false;
        }
        return getUsername().equals(((IMUser) object).getUsername());
    }

    /**
     * toString 显示用户的 UserName 或者 nick
     *
     * @return
     */
    @Override
    public String toString() {
        return nick == null ? username : nick;
    }
}